package engine

import (
	"log"
)

type SimpleEngine struct{}

// 单任务版爬虫
func (SimpleEngine) Run(seeds ...Request) {
	// 请求任务队列
	var requests []Request
	requests = append(requests, seeds...)

	// 只要任务队列不为空就一直爬取
	for len(requests) > 0 {
		r := requests[0]
		requests = requests[1:]

		// 获取解析数据
		parserResult, err := Worker(r)
		if err != nil {
			continue
		}

		// 把解析出的请求添加到请求队列
		requests = append(requests, parserResult.Requests...) // 将解析后需要继续request的添加到循环中
		for _, item := range parserResult.Items {
			log.Printf("Got item %v\n", item) // 打印获取到的结果
		}
	}
}
